package br.unicamp.ic.inf300.arena.modelo;
import br.unicamp.ic.inf300.framework.modelo.ModeloBase;

/**
 * Venda de Bilhetes Eletronicos para Espetaculos (Arena Entretenimento S.A.)
 * Parametrizacao.java
 */

public class Parametrizacao {
	private String parametrizacao;
	private String descricao;
	private String valor;
	
	public Parametrizacao() {
		super();
	}

	public Parametrizacao(String parametrizacao, String descricao, String valor) {
		super();
		this.parametrizacao = parametrizacao;
		this.descricao = descricao;
		this.valor = valor;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getParametrizacao() {
		return parametrizacao;
	}

	public void setParametrizacao(String parametrizacao) {
		this.parametrizacao = parametrizacao;
	}

	/**
	 * Definido como String para poder trazer diferentes tipos de dados do banco.
	 * Seu uso requer a conversao para tipo desejado.
	 * 
	 * @return String
	 */
	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		this.valor = valor;
	}

	/**
	 * @return <code>String</code>
	 * JUtils plugin ;-)
	 */
	public String toString()
	{
	    final String TAB = "    ";
	    
	    StringBuffer retValue = new StringBuffer();
	    
	    retValue.append("Parametrizacao ( ")
	        .append(super.toString()).append(TAB)
	        .append("descricao = ").append(this.descricao).append(TAB)
	        .append("parametrizacao = ").append(this.parametrizacao).append(TAB)
	        .append("valor = ").append(this.valor).append(TAB)
	        .append(" )");
	    
	    return retValue.toString();
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result
				+ ((parametrizacao == null) ? 0 : parametrizacao.hashCode());
		result = prime * result + ((valor == null) ? 0 : valor.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Parametrizacao other = (Parametrizacao) obj;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (parametrizacao == null) {
			if (other.parametrizacao != null)
				return false;
		} else if (!parametrizacao.equals(other.parametrizacao))
			return false;
		if (valor == null) {
			if (other.valor != null)
				return false;
		} else if (!valor.equals(other.valor))
			return false;
		return true;
	}
}